#pragma once

#include "DockPaneWnd.h"
#include "DockingPane.h"
/////////////////////////////////////////////////////////////////////////////
// CScriptInputPane window

class CXTPSyntaxEditFindReplaceDlg;

class CSyntaxEdit: public CXTPSyntaxEditCtrl
{
public:
	virtual BOOL PreTranslateMessage(MSG* pMsg);
	virtual void SetAutoCompleteList() {	CXTPSyntaxEditCtrl::SetAutoCompleteList(); }
};

class CScriptInputPane : public CXTPCommandBarsSiteBase<CDockingPaneWnd>
{
	// Construction
public:
	CScriptInputPane();
	virtual ~CScriptInputPane();

	DECLARE_DYNCREATE(CScriptInputPane)

	// Attributes
public:
	CSyntaxEdit						m_wndEditCtrl;

	CXTPSyntaxEditFindReplaceDlg	m_findReplaceDlg; // Pointer to find or replace dialog.
	CXTPSyntaxEditGoToLineDlg		m_dlgGoTo;

	//	CXTPToolBar			m_wndToolBar;

	CString				m_strFilename;

	virtual HRESULT OnUpdate();
	virtual void	Delete();

	virtual CString GetName() { return _T("Script"); }

	CXTPSyntaxEditCtrl& GetEditCtrl();

	afx_msg void OnClearAll();

	virtual CXTPSyntaxEditFindReplaceDlg* GetFindReplaceDlg();
	virtual void _EditFindReplace(BOOL bReplaceDlg);

	void SetDirty();
	void SetInitialTemplateCode();
	void SetPaneTitle();

	void OnScriptOption();
	CStringArray		m_strArrayReferencedAssemblies;
	BOOL				m_bDebugInfomation;

	// Operations
public:

	// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CScriptInputPane)
	//}}AFX_VIRTUAL

	// Generated message map functions
protected:
	//{{AFX_MSG(CScriptInputPane)
	afx_msg void OnFileOpen();
	afx_msg void OnFileSave();
	afx_msg void OnFileNew();
	afx_msg void OnFileSaveAs();
	afx_msg void OnScriptRun();
	afx_msg void OnScriptCompile();
	afx_msg void OnUpdateScriptCompile(CCmdUI* pCmdUI);
	afx_msg void OnUpdateScriptRun(CCmdUI* pCmdUI);
	afx_msg void OnScriptHelp();
	afx_msg void OnScriptAutoComplete();
	afx_msg void OnUpdateScriptAutoComplete(CCmdUI* pCmdUI);
	afx_msg void OnScriptCopyPlugIn();
	afx_msg void OnUpdateScriptCopyPlugIn(CCmdUI* pCmdUI);

	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void OnSize(UINT32 nType, INT32 cx, INT32 cy);

	afx_msg void OnKeyDown(UINT32 nChar, UINT32 nRepCnt, UINT32 nFlags);
	afx_msg void OnChar(UINT32 nChar, UINT32 nRepCnt, UINT32 nFlags);
	afx_msg void OnSetFocus(CWnd* pOldWnd);
	afx_msg void OnEditUndo();
	afx_msg void OnUpdateEditUndo(CCmdUI* pCmdUI);
	afx_msg void OnEditRedo();
	afx_msg void OnUpdateEditRedo(CCmdUI* pCmdUI);
	afx_msg void OnEditCut();
	afx_msg void OnUpdateEditCut(CCmdUI* pCmdUI);
	afx_msg void OnEditCopy();
	afx_msg void OnUpdateEditCopy(CCmdUI* pCmdUI);
	afx_msg void OnEditPaste();
	afx_msg void OnUpdateEditPaste(CCmdUI* pCmdUI);
	afx_msg void OnEditDelete();
	afx_msg void OnUpdateEditDelete(CCmdUI* pCmdUI);
	afx_msg void OnEditSelectAll();
	afx_msg void OnUpdateEditSelectAll(CCmdUI* pCmdUI);
	afx_msg void OnEditFind();
	afx_msg void OnUpdateEditFind(CCmdUI* pCmdUI);
	afx_msg void OnEditReplace();
	afx_msg void OnUpdateEditReplace(CCmdUI* pCmdUI);
	afx_msg void OnEditRepeat();
	afx_msg void OnUpdateEditRepeat(CCmdUI* pCmdUI);
	afx_msg void OnHelp();

	afx_msg void OnEditFindSilent();
	afx_msg void OnEditGoto();
	afx_msg void OnEditBookMark();
	afx_msg void OnEditNextBookMark();
	afx_msg void OnEditPrevBookMark();
	afx_msg void OnUpdateEditNextBookMark(CCmdUI* pCmdUI);
	afx_msg void OnUpdateEditPrevBookMark(CCmdUI* pCmdUI);
	afx_msg void OnContextMenu(CWnd* /*pWnd*/, CPoint point);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.


